package com.nfit.shopweb.service;

import com.github.pagehelper.PageInfo;
import com.nfit.shopmodel.dto.system.AssginRoleDto;
import com.nfit.shopmodel.dto.system.LoginDto;
import com.nfit.shopmodel.dto.system.SysPasswordDto;
import com.nfit.shopmodel.dto.system.SysUserDto;
import com.nfit.shopmodel.entity.system.SysUser;
import com.nfit.shopmodel.vo.system.LoginVo;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * ClassName:SysUserService
 * Package:com.nfit.shopweb.service
 * Description
 *
 * @Author L
 * @Create 2024/11/15 19:32
 */
@Schema(description = "用户业务接口")
public interface SysUserService {

    /**
     * 登入方法
     * @param loginDto 封装前端传来的数据
     */
    LoginVo login(LoginDto loginDto);

    /**
     *
     * 退出功能,根据token删除redis中存储的用户信息
     */
    void logout(String token);

    /**
     *  分页
     * @param pageNum 当前页
     * @param pageSize 每页记录数
     * @param sysUserDto 条件
     */
    PageInfo<SysUser> page(int pageNum, int pageSize, SysUserDto sysUserDto);

    /**
     * 删除用户
     * @param id  用户id
     */
    void delete(Integer id);

    /**
     * 修改用户
     * @param sysUser 用户实体根据id修改
     */
    void update(SysUser sysUser);

    /**
     * 添加用户
     * @param sysUser 用户
     */
    void save(SysUser sysUser);

    /**
     * 保存分配给用户的角色
     * @param assginRoleDto 接收前端数据
     */
    void saveAssignRole(AssginRoleDto assginRoleDto);

    /**
     * 修改密码
     * @param sysPasswordDto 封装前端传来的数据
     */
    void updatePassword(SysPasswordDto sysPasswordDto);
}
